/**
 * 将数字千分位格式化，输出字符串
 */ 



/**
 * 思路1：转换为数组，reverse，每3位拆分
 */ 
function format1 (n: number): string {
  n = Math.floor(n) // 只考虑整数
  const s = n.toString()
  const arr = s.split('').reverse()
  return arr.reduce((prev, val, index) => {
    if (index % 3 === 0) {
      if (prev) {
        return val + ',' + prev
      } else {
        return val
      }
    } else {
      return val + prev
    }
  }, '')
}


/**
 * 思路2：使用正则表达式（工作中可以用，但面试中不推荐！！！）
 */ 


/**
 * 思路3：使用字符串拆分
 */ 
function format3 (n: number): string {
  n = Math.floor(n) // 只考虑整数
  let res = ''
  const s = n.toString()
  const length = s.length
  for (let i = length - 1; i >= 0; i--) {
    const j = length - i
    if (j % 3 === 0) {
      if (i === 0) {
        res = s[i] + res
      } else {
        res = ',' + s[i] + res
      }
    } else {
      res = s[i] + res
    }
  }
  return res
}
